package com.dys;

import com.dys.util.DatabaseUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * @className: com.dys.RegisterAndLogin
 * @description: 综合案例-完成注册登录操作
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/09/11 下午10:19
 */
public class RegisterAndLogin02 {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Scanner sc = new Scanner(System.in);
        int count = 1;
        // 2.提示用户输入信息
        while (count <= 5) {
            // 给出友好性提示,做具体操作
            System.out.println("请选择你要完成的功能(1.注册, 2.登录): ");
            // 用户选择执行的功能
            int input = sc.nextInt();
            // 无论是注册还是登录都需要输入用户名和密码信息
            System.out.println("请输入用户名：");
            String username = sc.next();
            System.out.println("请输入密码：");
            String password = sc.next();
            if (input == 1) {
                // 注册
                // 2.建立连接
                Connection conn = DatabaseUtil.getConnection();
                // 3.执行SQL语句
                String sql = "insert into user(username,password) values(?,?)";
                System.out.println("执行的SQL: " + sql);
                // 4.获取发送SQL的对象
                PreparedStatement ps = conn.prepareStatement(sql);
                // 设置?占位符的值
                ps.setString(1, username);
                ps.setString(2, password);
                int res = ps.executeUpdate();
                if (res == 1) {
                    System.out.println("注册成功!!!");
                }
                // 5.释放资源
                DatabaseUtil.closeAll(conn, ps);
            } else {
                // 登录
                // 2.建立连接
                Connection conn = DatabaseUtil.getConnection();
                // 3.执行SQL语句
                String sql = "select * from user where username =? and password =?";
                System.out.println("执行的SQL: " + sql);
                // 4.获取发送SQL的对象
                PreparedStatement ps = conn.prepareStatement(sql);
                ps.setString(1, username);
                ps.setString(2, password);
                // 5.执行查询
                ResultSet res = ps.executeQuery();
                if (res.next()) {
                    System.out.println("登录成功!!!");
                } else {
                    System.out.println("登录失败!!!");
                }
                // 释放连接
                DatabaseUtil.closeAll(conn, ps, res);
            }
            count++;
        }
    }
}
